// @Title main[简述该包的主要作用]
// @Description
// @Author  cnhuashao
// @since v0.0.1
// @Version v1.0.0
// @Date 2024/4/21 18:21
// @Update 2024/4/21 18:21
package main

import (
	"FinancialManagement/src/base/baselog"
	"FinancialManagement/src/base/config"
	"FinancialManagement/src/base/db"
	"FinancialManagement/src/base/env"
	"FinancialManagement/src/base/util"
	"FinancialManagement/src/business"
	"flag"
	"fmt"
	"log"
)

// 这是我们整个框架的主入口
func main() {
	// 初始化基础启动配置
	initBaseConfig()
	// 初始化加解密配置
	err := util.InitEncrypt()
	if err != nil {
		log.Println(err.Error())
	}
	// 初始化数据库连接
	db.Init()
	// 启动gin框架
	business.InitGin()

}

func initBaseConfig() {
	sysConfigDir := flag.String("d", "./conf/", "配置一个启动配置文件存放目录，默认：./conf/")
	en := flag.String("env", "", "请输入运行环境:\n dev:开发环境\n fat:测试环境\n uat:预上线环境\n pro:正式环境\n")
	flag.Parse()
	log.Println("配置文件目录为：", *sysConfigDir)
	log.Println("配置文件级别为：", *en)
	config.SysConfigDir = *sysConfigDir
	util.SysConfigDir = *sysConfigDir
	env.InitEnv(en)
	// 初始配置文件
	if err := config.InitConfig(); err != nil {
		panic(fmt.Errorf("致命错误: %s \n", err))
	}
	// 启动日志组件
	if err := baselog.InitLogger(); err != nil {
		panic(fmt.Errorf("致命错误: %s \n", err))
	}

}
